成为掘金的签约作者,说明你的文章符合掘金社区的内容标准和规范。不过,我们希望签约作者能输出社区最高水准的优质内容,社区也愿意为优质内容提供更多流量倾斜,为此,我们对签约作者的原创文章也会有更高要求。
既然是评判优质原创,那我们首先要明确,到底什么样的文章才算是原创?
相信你也看过不少这样的文章:标注的是原创,但内容空泛,文章并无辨识度,没有原创感。比如:
这样的内容,无论是不是自己码的字,本质上都不能叫做原创,读者也没有阅读它的理由。一篇优质原创,带有写作者个人的基因,传递出的是写作者自己对知识的理解、实践经验和观点……
包括不限于如下内容:
| 知识 | 经验 | 观点 | | ------------------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------ | | 知识结构(知识树) 对知识的理解和应用 学习新知识的方法/技巧 …… | 工作遇到的坑儿 总结的规律、方法等 解决问题时的思路策略 …… | 做技术决策时的思维方式 对技术趋势的判断 对热点事件的态度、看法 …… |
因此,我们希望的你的文章在满足掘金社区的内容标准和规范的基础上,还能有需求意识,从读者视角出发,创造真正有价值的内容,这是评判一篇技术文章好坏的核心。
那么,一篇优质内容还有哪些具体的要求呢?我们主要会看这几个方面:选题、主线、结构、论证与衔接、遣词造句、配图,下面详细介绍。
选题要具体,且切中读者需求。
你可以想一下,两个选题,分别是:“结构化编程”、“为什么做设计时仅用结构化编程是不够的”,哪个更好写,哪个写出来更容易有干货?答案肯定是后者。因为后者更聚焦,要交付的内容很明确。
如果让你写“结构化编程”的内容,按照人的本能反应,很容易就会写成词条类文章,比如:先介绍一下什么是结构化编程,再说说它的历史、原则等等,这就是没有体现个人原创感的内容。
同样,从读者的视角来看,“结构化编程”显然是个笼统的、大的话题,看到它,读者并不清楚你到底要传达什么信息,大概率上他也不会点进来看你的文章。
所以,选题要具体。
那么,是不是所有具体的选题都有价值呢?也未必,你的选题还可以根据读者需求,进一步细化,让它更聚焦到读者痛点。
假设你想讲讲“Redis的优点”,这个选题确实比“Redis”要具体了,但是它还是很容易写出来宽泛的文章。你还需要进一步挖掘这个选题和读者的关系,思考你的内容可以给他带来哪些增量信息,进一步缩小选题的范围。
比如可以这样优化:
怎样找到合适的选题呢?这主要基于你对读者现有认知的基本判断,然后找到你和读者信息的偏差,因为写作本身也是一种交流,是一种信息传递。 如果你希望别人看你的内容,接收你的信息,那你和对方一定是有信息差的,比如:
从这些方面出发,去做一个选题,有理有据地输出内容,大概率上你的文章就会是一篇优质文章了。
其实,只要找准了选题,你要表述的内容就有了边界,剩下的就是怎么组织素材的问题了,这时就需要有一根主线,将你的内容串起来。主线通常能用一句话来表示,它是整篇文章要要传达的核心价值。
比如说,你确定了一个写作选题为:“电商系统的账户总是对不上账,怎么办?”,你要传递的核心观点是:“账户对不上账,本质上是冗余数据的一致性问题,可以使用数据库事务来保证数据的一致性。”那么这个观点就是你文章的主线,你可以围绕它来展开论述。
与这条主线无关的内容,都属于跑题,如果非必要,都应该删除。如果一定要写非主线内容,也要标注:“这里我额外说一下……”来管理读者预期。
你会发现,找选题是一个“定义问题”的过程,你发现了一个“问题”(指广义上的问题,泛指和读者认知有差别的内容),写文章去回答它,文章的主线就是高度提炼你对这个问题的答案。
再举个例子,假设你想讲“结构化编程”相关内容,你考虑了一下,发现大家对结构化编程的理解还不到位,于是你定了选题为:“为什么做设计时仅用结构化编程是不够的?”
对于这个问题,你的核心观点是“在结构化编程中,各模块的依赖关系太强,不能有效地将变化隔离开来。所以,它还需要与其他的编程范式进行配合。”那么,这句话就是你文章的核心主线,你的内容只要围绕着这句话来展开,一步步去论证就可以了。
在论证它的过程中,你会自然而然地带出结构化编程的相关知识,比如历史发展、优缺点、它和其他编程范式的区别等等,但是这些内容会作为论据,去辅助你说明你自己的观点,这些内容有明确的问题指向,那么你写出来的就不是词条文,而是有你自己思考和理解在里面。
结构是内容的骨架,没有结构,就算你的选题很新颖,主线很明确,文章也容易出现一些问题,比如说:
文章结构不好,读者的理解门槛高,注意力就容易丢失。那怎么构建结构呢?
第1步:构筑有吸引力的开头
我们都要承认,技术文章本身并不会像大家都喜欢的热辣小说一样,容易引人入胜地读下去。我们要试图吸引读者的注意力,让他们专注于你写的内容,那就需要在开头能给出他们读下去的理由。
在定选题的时候,我们就已经想清楚读者为什么会读这篇文章了,那么在开头,就是把你的选题“抛出来”的过程:让大家知道,你基于什么样的原因,所以要讲一个什么事/知识/观点……
我们要在开头交代和读者有关联的背景,以及能激发他读下去的冲突。比如:
在高并发、高吞吐量的极限情况下,简单的事情就会变得没有那么简单了。
一个业务逻辑非常简单的微服务,日常情况下都能稳定运行,一到大促就卡死甚至进程挂掉。一个做数据汇总的应用,按照小时、天这样的粒度进行数据汇总都没问题,到年底需要汇总全年数据的时候,没等数据汇总出来,程序就死掉了。
这里描述一个和读者工作相关的场景,描述了一个困境,他看到这,会觉得:“没错,我也遇到过这样的问题,很头疼” ,这样,你就把读者的注意力吸引住了,也给了他读下去的理由。接下来就是定义问题并分析和给出答案了:
那么,为什么在一些特定场景下,原本稳定的数据变得不稳定了?这是因为,程序在设计的时候,没有针对高并发高吞吐量等特殊情况做好内存管理。
……
对内存管理的介绍……
你看,通过这样的开头,你就可以展开你文章的主要论述了,这样远比一上来就介绍“内存管理是什么”要更有吸引力。你可以想一下,如果一上来就介绍内存管理的原理、实现机制等,文章就很干很平,而且更重的是,读者为什么看内存管理的实现机制相关内容,这些知识和他有什么关系呢?
第2步,选择呈现的逻辑规则
有了一个开头之后,你已经抛出了问题,也给出了你的核心答案,相当于核心观点已经给出来了,接下来要选择一个逻辑规则,来列小标题了,你可以选择两种方式:横向平铺或是纵向递进的方式。
具体例子:
选题:Kafka如何实现高性能IO?
文章主线:除了全异步化的线程模型、高性能的异步网络传输、自定义的私有传输协议等通用性能优化手段,Kafka 还有四个“独门绝技”,让它拥有高性能IO。
小标题1:使用批量消息提升服务端处理能力
小标题2: 使用顺序读写提升磁盘 IO 性能
小标题3: 利用 PageCache 加速消息读写
小标题4: 消费过程使用“零拷贝”技术
具体例子:
选题:如何管理亿级对象?
核心主线:因为索引空间换时间的本质,所以用索引可以管理亿级对象,索引中首选哈希表,不过使用哈希表要注意3个问题。
小标题1: 为什么用索引管理亿级对象?(因为用索引可以用空间换时间,首选哈希表)
小标题2: 为什么要选哈希表,而不是B树呢?(因为哈希表的时间复杂度是常量级O(1)。别的索引有XX,XX特点,它们更适用于别的场景)
小标题3: 使用哈希表,要注意哪些问题?(注意事项1/2/3,解决方案1/2/3)
不管你的论证逻辑是平铺直叙,还是层层递进,都要先从整体出发,再进入细节。这里举一个《金字塔原理》中一个说话直奔细节的例子:
一个人说:“上个星期我去了趟苏黎世。你知道,苏黎世是一个比较保守的城市。我们到一家露天餐馆吃饭,你知道吗?在15分钟里我至少见到了15个留长胡子的人。而且,如果你在纽约的任何一座写字楼周围转一转,你会发现几乎没有不留长胡子或长头发的人。当然,留长胡子在多年以前就已经是伦敦街头的一景了。”
发现了么,这个人说的每句户你都理解,但是你却很难捕捉到,他说这堆细节,到底想表达一件什么事。经过脑补和反复确认,你发现了,原来他想说的是:
你知道吗?我简直难以相信,在商业界,男人留长胡子或长头发已经这样普遍,这样被广泛接受:
在苏黎世……
在纽约……
还有,在伦敦……
你看,千万不要一下子就进入到具体的技术细节,读者看你文章是来了解事情的,背景信息肯定是不足的,如果你没有一些总结提炼的话在前面,他会根据你说的每一句细节推理你的观点,一来这样读者看你文章会非常累;二来他理解的意思也未必是你想表达的。
所以,写文章的整体结构最好是“总-分”或者“总分总”,具体到每一段也是这样。
而且你也会发现,好的文章结构是可以抽象出来的,有很清晰的骨架感(参见上面几个例子),你可以在这个骨架基础上进行拓展。
综上所诉,可以通过几个标准来评判你文章的结构:
文章结构是否可以抽象和拓展。
要让文章行文紧凑有份量,既要论证充分,也要衔接得当。
先说论证充分,这里经常存在四个常见的误区:
我们不追求文章的绝对正确,但是要在一篇文章里的逻辑是自洽的。也就是说,不管提出什么观点,你要能自圆其说。给出观点的时候,要有自己的案例、数据等作为佐证。不要通篇都是“大道理、我认为”,漂浮的内容没有价值。
举个例子,“文章的选题要小”,这是一个结论。“因为小选题更受欢迎”,这句看起来像是原因的句子,实际上还是结论。你可以列举一些数据,来证明小选题更受欢迎,这些数据,才是论据。
你的论据是不是真的能论证你的观点?数据会不会过时了、技术会不会已经太老了……
比如这句话:“我渴了,所以我开车去买奶茶”这就是缺失了一个逻辑,正常应该是:“我渴了,想快点喝到奶茶,开车去买比较快,所以我开车去。”很多人对自己擅长的领域太过熟悉,以至于出现“知识的诅咒(Curse of knowledge)”,出现逻辑缺失等问题,需要格外注意才能发现。
另外,段与段、句与句之间不是孤立存在的,不断抛出小问题、加一些引导语,可以让文章的节奏感更好,让文章线性推进下去不断档。不断抛出问题,引导用户思考,也是吸引用户注意力的一种方式,学会不断给用户制造一些困境,让读者时刻保持和你文章的共鸣。
比如:
……
无论你的观点多么精湛,你的知识多么渊博,文章总归是由一句句话组成,因此,句子无语病、表述清晰,没有错别字,这是基本原则。这就要求:
避免掉书袋。语言风格可以多变,但是不要文绉绉地表达,通篇都是术语,好文章的内核是你的思想和观点,而非看似华丽的词藻。
所谓“一图胜千言”,我们建议文章里可以适当增加配图。不过注意不要为了配图而故意加一些没有价值的图。
配图有很多类型,比如:演示图、示意图、总结思维导图,等等,这些图片本身也是内容的一部分,要对文字内容起到解释、补充、知识的总结提炼、梳理文章结构等作用。
图片内容合标之后,也要考虑图片本身的品质。主要关注以下几个方面: